iT邦幫忙

2022 iThome 鐵人賽

DAY 9
0

迴圈
程式流程控制的一環,用來重複執行相似的工作。

Kotlin提供的迴圈種類與Java相同,有「while」、「do while」與「for」。

If 表達式

在 Kotlin 中,if 是一個表達式:它返回一個值。

var max = a
if (a < b) max = b

加上 else

// With else
var max: Int
if (a > b) {
    max = a
} else {
    max = b
}

單行運算式

val max = if (a > b) a else b

三元運算子

int var_name = condition ? value if true : value if false

e.g.

int max = a>b ? a : b

When 表達式

when (x) {
    1 -> print("x == 1")
    2 -> print("x == 2")
    else -> {
        print("x is neither 1 nor 2")
    }
}

when 按順序將其參數與所有分支匹配,直到滿足某個分支條件。
when 既可以用作表達式,也可以用作語句。
如果用作表達式,則第一個匹配分支的值成為整個表達式的值。
如果將其用作語句,則忽略各個分支的值。就像 if 一樣,每個分支都可以是一個塊,它的值是塊中最後一個表達式的值。 如果其他分支條件都不滿足,則評估 else 分支。 如果 when 用作表達式,則 else 分支是強制性的,除非編譯器可以證明所有可能的情況都被分支條件覆蓋,例如,枚舉類條目和密封類子類型)。

enum class Color {
  RED, GREEN, BLUE
}

when (getColor()) {
    Color.RED -> println("red")
    Color.GREEN -> println("green")
    Color.BLUE -> println("blue")
    // 'else' is not required because all cases are covered
}

when (getColor()) {
  Color.RED -> println("red") // no branches for GREEN and BLUE
  else -> println("not red") // 'else' is required
}

For 迴圈

for 循環遍歷任何提供迭代器的東西。這相當於 C# 等語言中的 foreach 循環。 for 的語法如下:\

for (item in collection) print(item)

如果你想遍歷一個陣列或一個帶有索引的字典,你可以透過for迴圈達成:

for (i in array.indices) {
    println(array[i])
}

While迴圈

while 和 do-while 循環在滿足條件時連續執行它們的主體。它們之間的區別在於條件檢查時間:

  • while 檢查條件,如果滿足,則執行迴圈內程式碼,然後返回條件檢查。
  • do-while 執行迴圈內程式碼然後檢查條件。如果滿足,則循環重複。因此,無論條件如何,do-while 的主體都至少執行一次。
while (x > 0) {
    x--
}

do {
    val y = retrieveData()
} while (y != null) // y is visible here!

Reference


上一篇
[Day 8] 陣列
下一篇
[Day10] 返回和跳躍
系列文
從0開始的Kotlin學習之旅30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言